package com.itlaoqi.rabbitmq.basic;

import com.itlaoqi.rabbitmq.utils.RabbitConstant;
import com.itlaoqi.rabbitmq.utils.RabbitUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //connectionFacotry用于创建MQ的物理连接
//        ConnectionFactory connectionFactory = new ConnectionFactory();
//        connectionFactory.setHost("192.168.10.10");//
//        connectionFactory.setPort(5672);//是rabbitmq的默认端口号
//        connectionFactory.setUsername("itlaoqi");
//        connectionFactory.setPassword("123456");
//        connectionFactory.setVirtualHost("/test");
        //TCP的物理连接
        Connection conn = RabbitUtils.getConnection();

        //创建通信通道，相当于TCP中的虚拟连接
        Channel channel = conn.createChannel();
        //创建队列,申明病创建一个队列，如果队列已经存在，则使用这个队列
        //1.队列名称ID
        //2.是否持久化，false对应不持久化,MQ停止数据丢失
        //3.是否队列私有化，false代表所有消费者可以访问，true代表只有第一次拥有它的消费者才能一直访问，其他消费者不访问
        //4.是否自动删除，false代表连接停掉后不自动删除掉这个队列
        //5.其他参数
        channel.queueDeclare(RabbitConstant.QUEUE_HELLOWORLD,false,false,false,null);
        //四个参数
        //exchange 交换机，暂时用不到，再后面进行发布订阅时才会用到
        //队列名称
        //额外的设置属性
        //对吼一个参数是要传递的消息字节数组
        String message = "helloworld";
        channel.basicPublish("",RabbitConstant.QUEUE_HELLOWORLD,null,message.getBytes());
        channel.close();
        conn.close();
        System.out.printf("数据发送成功");
    }
}









